package org.nterlearning.datamodel.catalog.model;

import com.liferay.portal.kernel.bean.AutoEscape;
import com.liferay.portal.model.BaseModel;
import com.liferay.portal.model.CacheModel;
import com.liferay.portal.service.ServiceContext;

import com.liferay.portlet.expando.model.ExpandoBridge;

import java.io.Serializable;

import java.util.Locale;
import java.util.Map;

/**
 * The base model interface for the CourseRequirement service. Represents a row in the &quot;CATALOG_CourseRequirement&quot; database table, with each column mapped to a property of this class.
 *
 * <p>
 * This interface and its corresponding implementation {@link org.nterlearning.datamodel.catalog.model.impl.CourseRequirementModelImpl} exist only as a container for the default property accessors generated by ServiceBuilder. Helper methods and all application logic should be put in {@link org.nterlearning.datamodel.catalog.model.impl.CourseRequirementImpl}.
 * </p>
 *
 * @author Brian Wing Shun Chan
 * @see CourseRequirement
 * @see org.nterlearning.datamodel.catalog.model.impl.CourseRequirementImpl
 * @see org.nterlearning.datamodel.catalog.model.impl.CourseRequirementModelImpl
 * @generated
 */
public interface CourseRequirementModel extends BaseModel<CourseRequirement> {
    /*
     * NOTE FOR DEVELOPERS:
     *
     * Never modify or reference this interface directly. All methods that expect a course requirement model instance should use the {@link CourseRequirement} interface instead.
     */

    /**
     * Returns the primary key of this course requirement.
     *
     * @return the primary key of this course requirement
     */
    public long getPrimaryKey();

    /**
     * Sets the primary key of this course requirement.
     *
     * @param primaryKey the primary key of this course requirement
     */
    public void setPrimaryKey(long primaryKey);

    /**
     * Returns the course requirement ID of this course requirement.
     *
     * @return the course requirement ID of this course requirement
     */
    public long getCourseRequirementId();

    /**
     * Sets the course requirement ID of this course requirement.
     *
     * @param courseRequirementId the course requirement ID of this course requirement
     */
    public void setCourseRequirementId(long courseRequirementId);

    /**
     * Returns the course ID of this course requirement.
     *
     * @return the course ID of this course requirement
     */
    public long getCourseId();

    /**
     * Sets the course ID of this course requirement.
     *
     * @param courseId the course ID of this course requirement
     */
    public void setCourseId(long courseId);

    /**
     * Returns the requirement type of this course requirement.
     *
     * @return the requirement type of this course requirement
     */
    @AutoEscape
    public String getRequirementType();

    /**
     * Sets the requirement type of this course requirement.
     *
     * @param requirementType the requirement type of this course requirement
     */
    public void setRequirementType(String requirementType);

    /**
     * Returns the requirement value of this course requirement.
     *
     * @return the requirement value of this course requirement
     */
    public String getRequirementValue();

    /**
     * Returns the localized requirement value of this course requirement in the language. Uses the default language if no localization exists for the requested language.
     *
     * @param locale the locale of the language
     * @return the localized requirement value of this course requirement
     */
    @AutoEscape
    public String getRequirementValue(Locale locale);

    /**
     * Returns the localized requirement value of this course requirement in the language, optionally using the default language if no localization exists for the requested language.
     *
     * @param locale the local of the language
     * @param useDefault whether to use the default language if no localization exists for the requested language
     * @return the localized requirement value of this course requirement. If <code>useDefault</code> is <code>false</code> and no localization exists for the requested language, an empty string will be returned.
     */
    @AutoEscape
    public String getRequirementValue(Locale locale, boolean useDefault);

    /**
     * Returns the localized requirement value of this course requirement in the language. Uses the default language if no localization exists for the requested language.
     *
     * @param languageId the ID of the language
     * @return the localized requirement value of this course requirement
     */
    @AutoEscape
    public String getRequirementValue(String languageId);

    /**
     * Returns the localized requirement value of this course requirement in the language, optionally using the default language if no localization exists for the requested language.
     *
     * @param languageId the ID of the language
     * @param useDefault whether to use the default language if no localization exists for the requested language
     * @return the localized requirement value of this course requirement
     */
    @AutoEscape
    public String getRequirementValue(String languageId, boolean useDefault);

    @AutoEscape
    public String getRequirementValueCurrentLanguageId();

    @AutoEscape
    public String getRequirementValueCurrentValue();

    /**
     * Returns a map of the locales and localized requirement values of this course requirement.
     *
     * @return the locales and localized requirement values of this course requirement
     */
    public Map<Locale, String> getRequirementValueMap();

    /**
     * Sets the requirement value of this course requirement.
     *
     * @param requirementValue the requirement value of this course requirement
     */
    public void setRequirementValue(String requirementValue);

    /**
     * Sets the localized requirement value of this course requirement in the language.
     *
     * @param requirementValue the localized requirement value of this course requirement
     * @param locale the locale of the language
     */
    public void setRequirementValue(String requirementValue, Locale locale);

    /**
     * Sets the localized requirement value of this course requirement in the language, and sets the default locale.
     *
     * @param requirementValue the localized requirement value of this course requirement
     * @param locale the locale of the language
     * @param defaultLocale the default locale
     */
    public void setRequirementValue(String requirementValue, Locale locale,
        Locale defaultLocale);

    public void setRequirementValueCurrentLanguageId(String languageId);

    /**
     * Sets the localized requirement values of this course requirement from the map of locales and localized requirement values.
     *
     * @param requirementValueMap the locales and localized requirement values of this course requirement
     */
    public void setRequirementValueMap(Map<Locale, String> requirementValueMap);

    /**
     * Sets the localized requirement values of this course requirement from the map of locales and localized requirement values, and sets the default locale.
     *
     * @param requirementValueMap the locales and localized requirement values of this course requirement
     * @param defaultLocale the default locale
     */
    public void setRequirementValueMap(
        Map<Locale, String> requirementValueMap, Locale defaultLocale);

    public boolean isNew();

    public void setNew(boolean n);

    public boolean isCachedModel();

    public void setCachedModel(boolean cachedModel);

    public boolean isEscapedModel();

    public Serializable getPrimaryKeyObj();

    public void setPrimaryKeyObj(Serializable primaryKeyObj);

    public ExpandoBridge getExpandoBridge();

    public void setExpandoBridgeAttributes(ServiceContext serviceContext);

    public Object clone();

    public int compareTo(CourseRequirement courseRequirement);

    public int hashCode();

    public CacheModel<CourseRequirement> toCacheModel();

    public CourseRequirement toEscapedModel();

    public String toString();

    public String toXmlString();
}
